package com.pureut.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.system.domain.ChangeApplication;
import com.pureut.system.domain.CompensationApplication;
import com.pureut.system.domain.SupplierAlterHistory;
import com.pureut.system.domain.SupplierList;
import com.pureut.system.domain.dto.SupplierListDetailsDto;
import com.pureut.system.domain.dto.SupplierListPageDto;
import com.pureut.system.domain.vo.SupplierListVo;
import com.pureut.system.export.SupplierExport;

import java.util.List;

/**
 * @Author: pureut
 * @Date: 2024-12-05 17:16:19
 * @Desc: 供应商名录
 */
public interface ISupplierListService extends IService<SupplierList> {

    /**
     * 分页查询
     * @param supplierListVo
     * @return
     */
    List<SupplierListPageDto> queryPage(SupplierListVo supplierListVo);

    /**
     * 新增供应商名录
     * @param supplierListVo
     * @return
     */
    Boolean save(SupplierListVo supplierListVo);


    /**
     * 更新供应商名录
     * @param supplierListVo
     * @return
     */
    Boolean updateById(SupplierListVo supplierListVo);

    SupplierListDetailsDto getInfoById(Long id);

    /**
     * 供应商信息导出
     * @param supplierListVo
     * @return
     */
    List<SupplierListPageDto> getInfoExport(SupplierListVo supplierListVo);

    /**
     * 供应商导入
     * @param coCustomer
     * @return
     */
    String importMouldData(List<SupplierExport> coCustomer);

    /**
     * 变更历史
     * @param supplierId
     * @return
     */
    List<ChangeApplication> getAlterHistoryList(String supplierId);

    /**
     * 供方信息保存
     * @param changeApplication
     * @return
     */
    int saveChangeApplication(ChangeApplication changeApplication);

    /**
     * 修改变更信息
     * @param supplierAlterHistory
     * @return
     */
    int updateSupplierHis(SupplierAlterHistory supplierAlterHistory);

    /**
     * 查询供方变更前信息
     * @param supplierAlterHistory
     * @return
     */
    SupplierList getBeforeSuppler(SupplierAlterHistory supplierAlterHistory);

    /**
     *
     * @param compensationApplication
     * @return
     */
    int supplierClaim(CompensationApplication compensationApplication);
}

